#pragma once
#include "LinkedList.h"
#include "FileHandler.h"

enum Channel_Type
{
	POSITION = 0x2,
	ROTATION = 0x4,
	NORMAL = 0x8,
	ALPHA = 0x10,
	UV1 = 0x20,
	UV2 = 0x40,
	UV3 = 0x80,
	UV4 = 0x100,
	TEXTUREANIM = 0x200,
	SCALE = 0x400
};

class Quaternion
{
public:
	float m_X;
	float m_Y;
	float m_Z;
	float m_S;
};

class Vector3
{
public:
	float m_X;
	float m_Y;
	float m_Z;
};

class Vector2
{
public:
	float m_X;
	float m_Y;
};

class Channel
{
public:
	int m_Type;
	int m_TrackId;
	char* m_Data;
};

class ZMO
{
public:
	ZMO(void);
	~ZMO(void);

	void Load( char* a_FilePath );

	void Show();
	void Mod();
	void Save( char* a_FilePath );
	
	char m_FormatCode[8];
	int m_FPS;
	int m_FrameCount;
	int m_ChannelCount;
	LinkedList< Channel >* m_Channels;
	Iterator< Channel >* m_ChannelIt;

private:
	FileHandler* m_File;
};

